package org.summerframework.core.xml;

import java.util.List;
import java.util.Map;
import lombok.Data;

/**
 * 等待被初始化的Bean集合类
 *
 * @author sumou
 * @date 2025/02/19
 */
@Data
public class WaitInitializedBean {

    @Data
    public static class Dependence {

        /**
         * Bean的ID
         */
        private String beanId;

        /**
         * set注入使用的方法名称
         */
        private String name;

        /**
         * 引用注入
         */
        private String ref;

        /**
         * 简单类型注入
         */
        private String value;

    }

    /**
     * Bean的集合
     * key表示ID，value表示指向的类
     */
    private Map<String, String> beanMap;

    /**
     * Bean之间的依赖关系列表
     */
    private List<Dependence> depList;

    /**
     * 获取依赖类
     *
     * @param beanId Bean的ID
     * @return Bean的依赖
     */
    public Dependence getDependence(String beanId) {
        for (Dependence dep : depList) {
            if (dep.getBeanId().equals(beanId)) {
                return dep;
            }
        }
        return null;
    }

}
